package com.miplus.ccrm.core.controller.vo.action;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.miplus.ccrm.core.controller.vo.file.UploadResVo;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

//协商分期
@Data
public class FiAmortAddVo {
    /**
     * 关联的案件ID
     */
    @NotNull
    private Integer ficaseid;

    /**
     * 对应催记ID
     */
    private Integer tasknumber;

    /**
     * 关联的任务ID
     */
    private String clid;

    /**
     * 申请原因
     */
    @NotNull
    private String applyreason;

    /**
     * 申请备注
     */
    private String applydsc;

    /**
     * 申请日期（yyyy-mm-dd）
     */
    private String applydt;

    /**
     * 分期总金额
     */
    @NotNull
    private BigDecimal amount;

    /**
     * 分期本金
     */
    @NotNull
    private BigDecimal prin;

    /**
     * 分期利息
     */
    private BigDecimal interest;

    /**
     * 分期费用
     */
    private BigDecimal expense;

    /**
     * 违约金或罚息
     */
    private BigDecimal penchg;

    /**
     * 还款日
     */
    @NotNull
    private Integer everypayday;

    /**
     * 每期还款金额
     */
    private BigDecimal everyamount;

    /**
     * 分期期数
     */
    @NotNull
    private Integer pernumber;

    /**
     * 首期还款金额
     */
    @NotNull
    private BigDecimal firstamount;

    /**
     * 首期还款日
     */
    @JsonFormat(pattern ="yyyy-MM-dd",timezone = "GMT+8")
    @NotNull
    private Date firstpaydate;

    /**
     * 首期还款本金
     */
    private BigDecimal firstprin;

    /**
     * 首期还款利息
     */
    private BigDecimal firstinterest;

    /**
     * 首期还款费用
     */
    private BigDecimal firstexpense;

    /**
     * 减免本金
     */
    private BigDecimal reduceprin;

    /**
     * 减免利息
     */
    private BigDecimal reduceinterest;

    /**
     * 减免费用
     */
    private BigDecimal reduceexpense;

    /**
     * 减免违约金或罚息
     */
    private BigDecimal reducepenchg;

    /**
     * 分期明细（试算不需要）
     */
    private List<FiAmortDetailVo> fiAmortDetailVoList;

    /**
     * 上传成功的附件信息List
     */
    private List<UploadResVo> uploadList;
}
